New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement LLE-GCM #3096
Implement LLE-GCM #3096
Conversation
@jarveson, thanks for your PR! By analyzing the history of the files in this pull request, we identified @Nekotekina, @vlj and @acmiyaguchi to be potential reviewers. |
rpcs3/Emu/Cell/lv2/sys_rsx.cpp
Outdated
if (!m_sysrsx) | ||
fmt::throw_exception("sys_rsx_context_allocate called twice."); | ||
|
||
vm::falloc(0x40000000, 0x10000000, vm::rsx_context); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't seem necessary to allocate 256 MB for this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If no one else can use it in the PS3, it doesn't matter, the OS will lazy alloc it anyway...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On linux - maybe. You normally shouldn't rely on such an idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On Windows, too, its saved in a VAD.
Anyway, I'd agree with you on other types of applications, but as this is virtual memory on virtual memory, I believe it'll faster than checking if you need to alloc more in realtime. It isn't wasted memory, too, because it isn't used and no one will access it, so it shouldn't page fault.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea ill resize it to something smaller
rpcs3/Emu/Memory/vm.cpp
Outdated
@@ -783,6 +783,7 @@ namespace vm | |||
{ | |||
std::make_shared<block_t>(0x00010000, 0x1FFF0000), // main | |||
std::make_shared<block_t>(0x20000000, 0x10000000), // user | |||
std::make_shared<block_t>(0x40000000, 0x30000000), // rsx contexts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Put this at the end of the list. Why 0x30000000?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lv1/2 allows 3 rsx contexts i think, with vsh normally at 0x60000000, game context is at 0x40000000, so i assume it gives the full 0x10000000 for each context. Also, why end of list?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put this down to 0x10000000 because it seemed to force sonic unleashed to be unable to vm_map with it taking so much memory, may have to be looked into what actually is used by ps3 then
rpcs3/Emu/Memory/vm.h
Outdated
@@ -16,6 +16,7 @@ namespace vm | |||
{ | |||
main, | |||
user_space, | |||
rsx_context, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is unnecessary
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the code very much depends currently on being able to get the 0x40000000 allocation for context, unless there is a better way to do it that im missing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You don't need this. First 4 entries are special and they aren't required to allocate something with falloc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ooh, i see now, k ill make the changes
@jarveson yes, they happen with hle now too |
Fixed zcull issue which should remove regressions that happened |
Any other regressions? Should be good for merge 🔜 if not |
I don't know if this a regression but in Kingdom Heart 1 on KH 1.5 Remix HD the shadows of characters flicker a little. On master, they aren't flicker at all and are perfect. (With write color buffer else there are no shadows at all on master and LLE GCM) Then... I don't know if it's because write color buffer in combination with LLE GCM or not or if it's really a regression. For the rest, no problem to report. |
Controlled character moves slow when the analog stick is moved diagonally on this build(?) using xinput. Blog build doesn't have that issue. |
This build doesn't touch XInput and the blog build is not a master |
Probably related to recent xinput changes, try changing Pad Squircling Factor in config_xinput.yml to 4000 |
@Igihara If you mean running diagonally in P5, then try changing |
Changing it to 4000 fixed it. Thanks guys. |
This broke NHL 15 to not rendering anything I think it cos u deleted
2 previous build were getting E {rsx::thread} RSX: FBO check failed: 0x8cd6, but it was rendering game. |
Implements support for lle of GCM.